package com.pactera.miyuangroup.service;

import com.pactera.miyuangroup.vo.response.miyuan.*;

import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 米源数据
 *
 * @author Wangwu
 * @create 2018-04-25 下午1:38
 **/
public interface MiyuanDataService {

    static ExecutorService executor = Executors.newFixedThreadPool(5);
    /**
     * 商品分类
     *
     * @param pageNumber
     * @param pageSize
     * @return
     */
    MiYuanModel<MiYuanPage<Classification>> getGoodsClassification(int pageNumber, int pageSize);

    /**
     * 商品
     *
     * @param pageNumber
     * @param pageSize
     * @return
     */
    MiYuanModel<MiYuanPage<GoodsInfo>> getGoodsInfo(int pageNumber, int pageSize);

    /**
     * 组织结构
     *
     * @param pageNumber
     * @param pageSize
     * @return
     */
    MiYuanModel<MiYuanPage<Organization>> getOrganizationInfo(int pageNumber, int pageSize);

    /**
     * 员工信息
     *
     * @param pageNumber
     * @param pageSize
     * @return
     */
    MiYuanModel<MiYuanPage<UserInfo>> getUserInfo(int pageNumber, int pageSize);


    /**
     * 车辆信息
     *
     * @param pageNumber
     * @param pageSize
     * @return
     */
    MiYuanModel<MiYuanPage<VehicleInfo>> getVehicleInfo(int pageNumber, int pageSize);

    /**
     * 售货机信息
     *
     * @param licensePlate 车牌号
     * @return
     */
    MiYuanModel<List<VendorInfo>> getVendorInfo(String licensePlate);

    /**
     * 查询售货机货道信息
     *
     * @param number 售货机编号
     * @return
     */
    MiYuanModel<List<VendorPassagewayInfo>> getVendorPassagewayInfo(String number);

    /**
     * 查询售货机货道信息(增量)
     *
     * @param day 查询时间（日）
     * @return
     */
    MiYuanModel<List<VendorPassagewayIncrementInfo>> getVendorPassagewayIncrementInfo(Date day);

    /**
     * 售货机货道销售信息
     *
     * @param number           售货机编号
     * @param passagewayNumber 货道编号
     * @return
     */
    MiYuanModel<VendorPassagewaySaleInfo> getVendorPassagewaySaleInfo(String number, String passagewayNumber);

    /**
     * 售货机货道销售信息
     *
     * @param number           售货机编号
     * @return
     */
    MiYuanModel<MiYuanPage<VendorPassagewaySaleInfo>> getVendorPassagewaySaleInfo(String number);

    /**
     * 售货机销售金额信息
     *
     * @param controlNumber 售货机工控编号
     * @return
     */
    MiYuanModel<VendorSaleInfo> getVendorSaleInfo(String controlNumber);


    /**
     * 补货完成
     *
     * @param info 补货信息
     * @return
     */
    MiYuanModel postReplenishmentInfo(ReplenishmentInfo info);

}
